#include "Juego.h"
#include "Jugador.h"
using namespace std;

Juego::Juego(unsigned int cantidadDeJugadores, Mapa* mapa) {
	turno = 0;
	this->cantidadDeJugadores = cantidadDeJugadores;
	this->mapaDelJuego = mapa;
	for (int i = 1; i <= MAX_CANTIDAD_DADOS_PARA_ATACAR; i++)
		dadosAtacante.push_back(new Dado(i));
	for (int i = 1; i <= MAX_CANTIDAD_DADOS_PARA_DEFENDER; i++)
		dadosDefensor.push_back(new Dado(CANTIDAD_DADOS-MAX_CANTIDAD_DADOS_PARA_DEFENDER+i));
}

Mapa* Juego::getMapa() {
	return mapaDelJuego;
}

Jugador* Juego::getJugador(string colorJugador) {
	for (int i = 0; i<jugadores.size(); i++)
		if (jugadores[i]->getColor() == colorJugador)
			return jugadores[i];
	return NULL;
}

unsigned int Juego::getCantidadDeJugadores() {
	return cantidadDeJugadores;
}

vector<Jugador*>* Juego::getJugadores() {
	return &jugadores;
}

Jugador* Juego::getJugadorEnTurno() {
	return jugadores[turno];
}

void Juego::setTurno(int turno) {
	this->turno = turno;
}

void Juego::setTurno(string colorJugador) {
	for (int i = 0; i<jugadores.size(); i++)
		if (jugadores[i]->getColor() == colorJugador) {
			this->turno = i;
			return;
		}
}

list<Dado*>* Juego::getDadosAtacante() {
	return &dadosAtacante;
}

list<Dado*>* Juego::getDadosDefensor() {
	return &dadosDefensor;
}

